// input.h : contains the definition of the input component, which allows objects
// to obtain user input from the keyboard/mouse
//$Id: Input.h 19 2009-08-16 00:26:19Z brwarner2 $

#pragma once
#include "component.h"

//Entity component class
class CInput :
	public IComponent
{
public:
	//Messaging function for communication
	void Message( MessageID message, const boost::any& arg = 0 ) {}

	//Handler for GM function calls
	int GMCall( gmThread*, const std::string& name );

	//Game monkey registration function
	static void RegisterGM( gmMachine* );

	//Component ID
	static const ComponentID COMPONENT_ID = 3;

	//Get component ID
	ComponentID GetComponentID(void) { return COMPONENT_ID; }

	//Factory function
	static IComponent* Factory(void) { return new CInput(); }

	//Destruct function
	static void Destruct( IComponent* pInp ) { delete (pInp); }
};
